int yuubandadapickup( wchar_t* dir1, char *yuuban, int nosmax, int *nos, array< char, 2 >^ *data )
{
int cnt;
int n = 0, n1 = 0, n2 = 0, n3 = 0, n4 = 0, n5 = 0;
int i, j, ip1, ip3;
bool crflg, lfflg;
char* cr = "\r";
char* lf = "\n";
char* ch1 = ",";
char ch2[ 2 ]; ch2[ 0 ] = '"'; ch2[ 1 ] = NULL;
char s2[ systemdatalen ];
char s3[ 3 ];
char s4[ 3 ];
char s5[ systemdatalen ];
char s6[ systemdatalen ];
if ( ! File::Exists( chgmojidata1( dir1 ) ) ) return -1;
FileStream^ sr1 = File::OpenRead( chgmojidata1( dir1 ) );
unsigned char s;
array< unsigned char >^ s1;
strcpy_s( s5, systemdatalen, yuuban );
Trace::WriteLineIf( debugflg, " yuubandadapickup ( 1 ) yuuban = " + chgmojidata3( s5 ) );
n = 0;
cnt = 0;
try
{
n1 = 0;
n4 = 0;
crflg = false;
lfflg = false;
while( s = sr1->ReadByte( ) )
{
if ( s == 255 ) break;
s1->Resize( s1, n1 + 1 );
s1[ n1 ] = s;
n1++;
s3[ n4 ] = s;
n4++;
if ( n4 >= 1 )
{
s3[ n4 ] = NULL;
if ( strcmp( s3, cr ) == 0 ) { crflg = true; n2 = n1; }
if ( strcmp( s3, lf ) == 0 && crflg && n1 == n2 + 1 ) lfflg = true;
if ( lfflg )
{
ip1 = 0;
ip3 = 0;
n3 = 0;
n5 = 0;
s6[ n3 ] = NULL;
//Trace::WriteLineIf( debugflg, " yuubandadapickup ( 2 ) cnt = " + cnt );
for ( i = 0; i < n1; i++ )
{
s4[ n5 ] = s1[ i ];
n5++;
if ( n5 >= 1 )
{
s4[ n5 ] = NULL;
if ( strcmp( s4, ch1 ) == 0 ) ip1++;
if ( ip1 >= 2 )
{
if ( ip3 >= 1 )
{
if ( strcmp( s4, ch2 ) == 0 ) ip3++;
if ( ip3 >= 2 || ip1 >= 3 )
{
s6[ n3 ] = NULL;
//Trace::WriteLineIf( debugflg, " yuubandadapickup ( 5 ) n = " + n + " s5 = " + chgmojidata3( s5 ) + " s6 = " + chgmojidata3( s6 ) );
if ( strcmp( s5, s6 ) == 0 )
{
for ( j = 0; j < n1; j++ ) ( *data )[ n, j ] = s1[ j ];
n++;
}
n1 = 0;
n4 = 0;
crflg = false;
lfflg = false;
cnt++;
break;
}
s2[ n3 ] = s4[ 0 ];
s6[ n3 ] = s4[ 0 ];
n3++;
}
if ( strcmp( s4, ch2 ) == 0 ) ip3++;
}
n5 = 0;
}
if ( n >= nosmax )
{
if ( sr1 ) delete ( IDisposable^ ) sr1;
*nos = n;
Trace::WriteLineIf( debugflg, " yuubandadapickup ( 3 ) file = " + chgmojidata1( dir1 ) + " record count n = " + n );
return 0;
}
}
}
n4 = 0;
}
}
}
finally
{
if ( sr1 ) delete ( IDisposable^ ) sr1;
}
*nos = n;
Trace::WriteLineIf( debugflg, " yuubandadapickup ( 4 ) file = " + chgmojidata1( dir1 ) + " record count n = " + n );
return 0;
}